import lombok.Data;
import lombok.experimental.Accessors;
import org.hyperledger.fabric.contract.annotation.DataType;
import org.hyperledger.fabric.contract.annotation.Property;

@DataType
@Data
@Accessors(chain = true)
public class NFTInfo {

    @Property
    String id;         // NFT的id
    @Property
    String owner;      // NFT持有者
    @Property
    String creator;    // NFT创建者
    @Property
    String name;       // NFT名称
    @Property
    String price;      // NFT价格
    @Property
    String image;      // NFT暂存地址
    @Property
    String resource;   // NFT实际托管地址
    @Property
    String type;       // NFT类型（0->图片，1->视频，2->音频，3->文档)
    @Property
    String state;      // NFT状态(0->未上架，1->已上架)
    @Property
    String createTime; // NFT上链时间

    public NFTInfo(String id, String owner, String creator, String name, String price, String image, String resource, String type, String state, String createTime) {
        this.id = id;
        this.owner = owner;
        this.creator = creator;
        this.name = name;
        this.price = price;
        this.image = image;
        this.resource = resource;
        this.type = type;
        this.state = state;
        this.createTime = createTime;
    }

    public NFTInfo() {
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getOwner() {
        return owner;
    }

    public void setOwner(String owner) {
        this.owner = owner;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public String getResource() {
        return resource;
    }

    public void setResource(String resource) {
        this.resource = resource;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }
}
